package com.nuo.backend.common.excel.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.nuo.backend.common.excel.po.ExportListPo;
import com.nuo.backend.common.utils.R;
import org.springframework.web.multipart.MultipartFile;

import java.util.List;

/**
 * @description: TODO 导入导出 excel
 * @author nuo
 * @date 2022/11/8 2:33
 * @version 1.0
 */
public interface ExcelService<T, S extends IService<T> & BaseIService<T>> {

    /**
     * @description: 导入 excel 表
     * @param file 需要导入的 .xlsx 文件
     * @param clazz 导入的类型
     * @return R
     * @date: 2022/11/8 3:53
     */
    R importList(MultipartFile file, Class<T> clazz, S s);


    /**
     * @description: 导出 excel 表
     * @param po 封装好的 po
     * @param clazz 导出类型
     * @return R
     * @date: 2022/11/8 3:52
     */
    R exportList(ExportListPo<T> po, Class<T> clazz);

    /**
     * @description: 导出全部数据
     * @param clazz
     * @param s
     * @return R
     * @date: 2022/11/9 15:25
     */
    R exportAll(Class<T> clazz, S s);
}
